As it is generally known, many modern applications include the capability to access information stored in a repository such as a relational database. Typically, the user runs a query requesting all database records that meet a set of specified criteria for contents of fields in the database schema. One such application is a software defect tracking system, in which a user can run queries requesting defect records matching certain criteria. For example, the user of a defect tracking system may request defect records from the database that have been reported against a certain software version, that relate to a specific component or feature of a product in question, that are in a certain state, etc.
A situation may arise where the user is looking at a specific record in a result set and become interested in seeing similar records that share certain field contents with that record. For example, an engineer currently looking at a specific defect reported by external customers may be interested in seeing records for all defects reported by exactly the same set of customers. Or the engineer may be interested in seeing records for all defects reported by the same submitter and against the same component. Under these circumstances, the fields of interest for such “related records” may be different from the field criteria used in the original database query.
In existing systems, in order to address this need, the user must construct a new query based on the new set of desired criteria. However, this requires the user to stop what he or she is currently doing, construct the desired new query, and run it. Instead, it would be desirable to have a system that conveniently and dynamically constructs a desired new query based on field contents directly identified in the current record by the user as important. Such a new system would allow the user to request a new set of results matching their specific needs. With such a system, the user would, for example, be able to conveniently request all records for defects which have been reported by exactly the same set of customers that identified a defect in a currently active record.
Previous approaches have been deficient in this regard. For example, Microsoft Sharepoint can be used when hosting a Web site that accesses shared workspaces, information stores and documents, as well as host defined applications such as wikis and blogs. Users can manipulate proprietary controls called “web parts” that are controls the designer can embed in web pages. The Content Query web part allows users to build and run queries. These queries specify which items are displayed, and the user can set presentation options to determine how the items are displayed on the finished page. However, like other existing solutions, Content Query web parts require the user to build and run queries “manually” based on the user's understanding of what he or she wants to see. Such solutions fail to build queries dynamically based on the contents of specified fields within a selected record.
Other previous approaches have allowed the user to access child records in a hierarchical relationship of records. Examples of this approach include Datagrid and SugarCRM. These techniques also do not address the need to find records with matching contents in user specified fields of a current record without any other relationship between the records.
For the above reasons and others it would accordingly be desirable to have a new automated solution that effectively supports dynamically creating queries to find related records in a database.